'''
Created on 28/10/2011

@author: Daniel
'''
from VariaveisGlobais import *
import MySQLdb
import tkMessageBox


class IO:
    def __init__(self):
        pass 
    
    def conectar(self, login, senha):
        
        self.database = MySQLdb.connect("localhost", login, senha, "sgfb") 
    
    def salvar_aluno_no_banco(self, itens_a_salvar):
        try:
            self.cursor = self.database.cursor()
            self.sql = "INSERT INTO aluno VALUES (NULL, '%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%d','%d','%d','%d')" % (itens_a_salvar)
            self.cursor.execute(self.sql)
            self.database.commit()
            tkMessageBox.showinfo("Mensagem do sistema", "Aluno Cadastrado com sucesso.")
    
        except:
            self.database.rollback()
            tkMessageBox.showerror("Error", "Ocorreu um erro inesperado ao tentar cadastrar no banco de dados, por favor contate o administrador.")
            
    def salvar_funcionario_no_banco(self, itens_a_salvar):
        try:
            self.cursor = self.database.cursor()
            self.sql = "INSERT INTO funcionario VALUES (NULL, '%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%d','%d','%d','%d')" % (itens_a_salvar)
            self.cursor.execute(self.sql)
            self.database.commit()
            tkMessageBox.showinfo("Mensagem do sistema", "Funcionario Cadastrado com sucesso.")
            
        except:
            self.database.rollback()
            tkMessageBox.showerror("Error", "Ocorreu um erro inesperado ao tentar cadastrar no banco de dados, por favor contate o administrador.")
   
    def salvar_livro_didatico_no_banco(self, itens_a_salvar):
        try:
            self.cursor = self.database.cursor()
            self.sql = "INSERT INTO livro_didatico VALUES (NULL, '%s','%s','%d','%d','%s','%s','%s','%s','%d','%s','%s','%s','%s','%s')" % (itens_a_salvar)
            self.cursor.execute(self.sql)
            self.database.commit()
            tkMessageBox.showinfo("Mensagem do sistema", "Livro Didatico Cadastrado com sucesso.")
        except:
            self.database.rollback()
            tkMessageBox.showerror("Error", "Ocorreu um erro inesperado ao tentar cadastrar no banco de dados, por favor contate o administrador.")
    
    def salvar_livro_paradidatico_no_banco(self, itens_a_salvar):
        try:
            self.cursor = self.database.cursor()
            self.sql = "INSERT INTO livro_paradidatico VALUES (NULL, '%s','%s','%d','%d','%s','%s','%s','%s','%d','%s')" % (itens_a_salvar)
            self.cursor.execute(self.sql)
            self.database.commit()
            tkMessageBox.showinfo("Mensagem do sistema", "Livro Paradidatico Cadastrado com sucesso.")
        except:
            self.database.rollback()
            tkMessageBox.showerror("Error", "Ocorreu um erro inesperado ao tentar cadastrar no banco de dados, por favor contate o administrador.")
    
    def salvar_revista(self, itens_a_salvar):
        try:
            self.cursor = self.database.cursor()
            self.sql = "INSERT INTO revista VALUES (NULL, '%s','%d','%d','%s','%s','%s','%s','%d','%s','%s')" % (itens_a_salvar)
            self.cursor.execute(self.sql)
            self.database.commit()
            tkMessageBox.showinfo("Mensagem do sistema", "Revista Cadastrada com sucesso.")
        except:
            self.database.rollback()
            tkMessageBox.showerror("Error", "Ocorreu um erro inesperado ao tentar cadastrar no banco de dados, por favor contate o administrador.")
    
    def salvar_artigo(self, itens_a_salvar):
        try:
            self.cursor = self.database.cursor()
            self.sql = "INSERT INTO artigo VALUES (NULL, '%s','%d','%d','%s','%s','%s','%d','%s')" % (itens_a_salvar)
            self.cursor.execute(self.sql)
            self.database.commit()
            tkMessageBox.showinfo("Mensagem do sistema", "Artigo Cadastrada com sucesso.")
        except:
            self.database.rollback()
            tkMessageBox.showerror("Error", "Ocorreu um erro inesperado ao tentar cadastrar no banco de dados, por favor contate o administrador.")
   
     
    def salvar_emprestimo(self, id_cliente, codigo_livro, data_entrega, status, tipo):
        try:
            self.cursor = self.database.cursor()
            self.sql = "INSERT INTO emprestimo VALUES (NULL, '%s', '%s', '%s', '%d', '%d')" %(id_cliente, codigo_livro, data_entrega, status, tipo)
            self.cursor.execute(self.sql)
            self.database.commit()
        except:
            self.database.rollback()
            tkMessageBox.showerror("Error", "Ocorreu um erro inesperado ao tentar salvar o emprestimo no banco, por favor contate o administrador.")
            
    #realiza uma consulta no banco de dados passando algum paramentro de comparacao
    def consultar_no_banco(self, tabela, itens_a_consultar):
        try:
            self.cursor = self.database.cursor()
            self.sql = "SELECT * FROM %s WHERE %s" % (tabela, itens_a_consultar)
            self.cursor.execute(self.sql)
            self.resultado = self.cursor.fetchall()
            return self.resultado
        except:
            tkMessageBox.showerror("Error", "Ocorreu um erro inesperado ao tentar acessar o banco de dados, por favor contate o administrador.")
    #realiza uma consulta no banco sem nenhum paramentro
    def extrair_do_banco(self, tabela):
        try:
            self.cursor = self.database.cursor()
            self.sql = "SELECT * FROM %s" % (tabela)
            self.cursor.execute(self.sql)
            self.resultado = self.cursor.fetchall()
            return self.resultado
        except:
            tkMessageBox.showerror("Error", "Ocorreu um erro inesperado ao tentar acessar o banco de dados, por favor contate o administrador.")
            
    def alterar_no_banco(self, tabela, mudanca, condicao):
        try:
            self.cursor = self.database.cursor()
            self.sql= "UPDATE %s SET %s WHERE %s" %(tabela, mudanca, condicao)
            self.cursor.execute(self.sql)
            self.database.commit()
        except:
            self.database.rollback()
            tkMessageBox.showerror("Error", "Ocorreu um erro inesperado ao tentar alterar o banco de dados, por favor contate o administrador.")
     
banco = IO()
        